GtkIconView: Fix a segfault
authorMatthias Clasen <mclasen@redhat.com>
Wed, 23 Nov 2011 22:49:46 +0000 (17:49 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 23 Nov 2011 22:51:58 +0000 (17:51 -0500)
Keynav on an empty iconview was causing segfaults. This
was reported in https://bugzilla.gnome.org/show_bug.cgi?id=664456

gtk/gtkiconview.c

index e527dde40d1f9bbccceb0ae232fdaf073f68bf94..e12bd46582eb4ec63f0d879da80576b3e776bef7 100644 (file)
@@ -3769,11 +3769,18 @@ gtk_icon_view_move_cursor_up_down (GtkIconView *icon_view,
       else
        list = g_list_last (icon_view->priv->items);
 
-      item = list ? list->data : NULL;
+      if (list)
+        {
+          item = list->data;
 
-      /* Give focus to the first cell initially */
-      gtk_icon_view_set_cell_data (icon_view, item);
-      gtk_cell_area_focus (icon_view->priv->cell_area, direction);
+          /* Give focus to the first cell initially */
+          gtk_icon_view_set_cell_data (icon_view, item);
+          gtk_cell_area_focus (icon_view->priv->cell_area, direction);
+        }
+      else
+        {
+          item = NULL;
+        }
     }
   else
     {
@@ -3914,11 +3921,18 @@ gtk_icon_view_move_cursor_left_right (GtkIconView *icon_view,
       else
        list = g_list_last (icon_view->priv->items);
 
-      item = list ? list->data : NULL;
+      if (list)
+        {
+          item = list->data;
 
-      /* Give focus to the first cell initially */
-      gtk_icon_view_set_cell_data (icon_view, item);
-      gtk_cell_area_focus (icon_view->priv->cell_area, direction);
+          /* Give focus to the first cell initially */
+          gtk_icon_view_set_cell_data (icon_view, item);
+          gtk_cell_area_focus (icon_view->priv->cell_area, direction);
+        }
+      else
+        {
+          item = NULL;
+        }
     }
   else
     {